package com.itheima.stock.config;

import com.itheima.stock.pojo.vo.StockInfoConfig;
import com.itheima.stock.utils.IdWorker;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * @author : itheima
 * @date : 2022/9/19 17:35
 * @description : 定义公共的配置类
 */
@EnableConfigurationProperties(StockInfoConfig.class) //是一个Spring Boot注解,用于启用对特定配置类StockInfoConfig的配置属性的支持
@Configuration //是一个Spring框架中的注解，用于标识一个类为配置类
public class CommonConfig {
    /**
     * 定义密码加密匹配器bean
     * @return
     */
    @Bean //通常用于声明一个Bean，该Bean可以被Spring容器管理并在需要时进行依赖注入
    public PasswordEncoder passwordEncoder(){
        return new BCryptPasswordEncoder();
    }

    /**
     * 配置id生成器Bean
     * @return
     */
    @Bean
    public IdWorker idWorker(){
        //基于运维人员对机房和机器的编号规划自行约定
        return new IdWorker(1l,2l);
    }

}
